fix(topology): detect BGA cores in mixed packages - #1799
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Benchmark This PRRun benchmarks by commenting on this PR: Comment Everything after Use Any PR whose title contains |
da6aece to
1175f7b
Compare
d366bda to
d47ce2b
Compare
1175f7b to
3dacbaf
Compare
d47ce2b to
fb939cd
Compare
3dacbaf to
505ea31
Compare
fb939cd to
21a4397
Compare
Stack
Stacked on reproduction PR #1798. Review that test-only PR first.
Root cause
srj24sample 4 contains a regular 13×13 BGA core inside a 337-pad mixed package. The existing detector evaluated all pads as one component, so the mixed pad geometry hid the core. Component-topology ownership also used onlycomponentId, which would absorb unrelated perimeter pads if a partial core were detected.What changed
This implements the first two topology fixes without adding a pipeline stage:
There are no route-specific IDs, dataset thresholds, pathing heuristics, target-layer promotion, or iteration-budget changes.
Before/after visualization
The fixture includes differently shaped perimeter pads and irregular same-size pads, matching the property that made the real sample difficult. The final frame is computed from the real merged/subdivided capacity graph and shows a legal z0 → multilayer BGA gap → z5 path.
Real-sample verification and scope boundary
At effort 1, a fresh
srj24sample 4 run completes Pipeline7 stages 1–10 with this change, including component detection, topology planning/merging, subdivision, edge construction, and necessary cramped-port preparation. The original static reachability error forsource_trace_94__source_net_94_mst1is gone.Current
mainthen reaches a separate path-search limit:SelectiveReripTinyHyperGraphSolverWithStableInitialAssignments ran out of iterationsat 2,000,001 iterations.Therefore this PR establishes the legal topology required to fix sample 4 but does not claim that the current-main pathing solver completes the full sample by itself. As a compatibility check, the previously known pathing implementation completed the same sample after the topology was legal (2,000,004 iterations, about 412.7 seconds).
Checks
bun test tests/component-detection-bga-only.test.ts tests/features/topology/srj24-sample4-topology-repro.test.ts tests/features/topology/srj24-sample4-topology-fix.test.ts --timeout 9999999— 17 passedbun test tests/features/topology/topology-merging tests/features/topology/merged-topology tests/features/topology/bga-topology --timeout 9999999— 17 passedbun run buildbun scripts/run-sample.ts --pipeline 7 --sample 4 --dataset srj24 --out-dir /private/tmp/srj24-clean-final-topology-proof --stop-after-stage necessaryCrampedPortPointSolver --effort 1